package com.kuang.tcp;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class TcpServer {

    public static void main(String[] args) {
        ServerSocket serverSocket=null;
        Socket acceptSocket=null;
        InputStream inputStream=null;
        ByteArrayOutputStream byteArrayOutputStream=null;

        while (true){
            try {
                //1.我得有一个地址
                serverSocket = new ServerSocket(9999);
                //2.等待客户端连接过来
                acceptSocket = serverSocket.accept();
                //3.读取用户的消息
                inputStream = acceptSocket.getInputStream();

                /*byte[] bytes = new byte[1024];
                int len=0;
                while ((len=inputStream.read(bytes))!=-1){
                    String msg = new String(bytes, 0, len);
                    System.out.println(msg);
                }*/

                //管道流
                byteArrayOutputStream = new ByteArrayOutputStream();
                byte[] bytes = new byte[1024];
                int len=0;
                while ((len=inputStream.read(bytes))!=-1){
                    byteArrayOutputStream.write(bytes,0,len);
                }
                System.out.println(byteArrayOutputStream.toString());

            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (byteArrayOutputStream!=null){
                    try {
                        byteArrayOutputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }

                if (inputStream!=null){
                    try {
                        inputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }

                if (acceptSocket!=null){
                    try {
                        acceptSocket.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }

                if (serverSocket!=null){
                    try {
                        serverSocket.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
}
